home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / wildcat / wc30rec.zip / GLOTYPE.PAS < prev    next >
Pascal/Delphi Source File  |  1992-05-12  |  34KB  |  721 lines

  1. unit GloType;
  2.  
  3. (******************************************************************
  4.  
  5. Global record structure for WILDCAT! version 3.5.
  6. Copyright 1986,92 Mustang Software Inc.  All rights reserved.
  7.  
  8. Last Revised 05-12-92
  9.  
  10. ******************************************************************)
  11.  
  12. interface
  13.  
  14. uses
  15.   Dos,
  16.   TpDate,
  17.   Filer;
  18.  
  19. const
  20.   TAB            = #9;                                              { tab key }
  21.   BS             = #8;                                           { back space }
  22.   DEL            = #127;                                         { delete key }
  23.   LF             = #10;                                           { line feed }
  24.   CR             = #13;                                           { enter key }
  25.   CRLF           = #13#10;                   { carriage return with line feed }
  26.   Space          = #32;                                               { space }
  27.   Underline      = '_';                                       { underline key }
  28.   Comma          = ',';                                           { comma key }
  29.   Period         = '.';
  30.   NonStop        = -1;                                     { for page pausing }
  31.   ShareMode      = 66;
  32.   ReadOnlyMode   = 64;
  33.  
  34.   UserNameKey    = 1;
  35.   UserSecKey     = 2;
  36.   UserExpDateKey = 3;
  37.   UserAliasKey   = 4;
  38.  
  39.   MsgNumberKey   = 1;
  40.   MsgOrigNumKey  = 2;
  41.   MsgDestNumKey  = 3;
  42.   MsgSubjectKey  = 4;
  43.   MsgReceiveKey  = 5;
  44.   MsgDeleteKey   = 6;
  45.  
  46.   FileNameKey    = 1;
  47.   FileAreaKey    = 2;
  48.   FileDateKey    = 3;
  49.   FilePWKey      = 4;
  50.   FileUpKey      = 5;
  51.   FileKWKey      = 6;
  52.   
  53.  
  54.   {------------------ Type Declarations ----------------------}
  55.  
  56. type
  57.   WcDatabases    = (dbMsg, dbUser, dbFile);
  58.   CheckLockErrorFunc = function : Boolean;
  59.  
  60.   Str02          = String[2];
  61.   Str03          = String[3];
  62.   Str05          = String[5];
  63.   Str07          = String[7];
  64.   Str08          = String[8];
  65.   Str09          = String[9];
  66.   Str10          = String[10];
  67.   Str11          = String[11];
  68.   Str12          = String[12];
  69.   Str13          = String[13];
  70.   Str14          = String[14];
  71.   Str15          = String[15];
  72.   Str16          = String[16];
  73.   Str18          = String[18];
  74.   Str19          = String[19];
  75.   Str20          = String[20];
  76.   Str21          = String[21];
  77.   Str23          = String[23];
  78.   Str25          = String[25];
  79.   Str26          = String[26];
  80.   Str30          = String[30];
  81.   Str35          = String[35];
  82.   Str40          = String[40];
  83.   Str50          = String[50];
  84.   Str51          = String[51];
  85.   Str60          = String[60];
  86.   Str64          = String[64];
  87.   Str75          = String[75];
  88.   Str79          = String[79];
  89.   Str80          = String[80];
  90.   Str128         = String[128];
  91.  
  92.   {various bit set types}
  93.   NodeBitSetType = array[1..33] of Byte;                           { 250 bits }
  94.   Array1000Bits  = array[1..126] of Byte;                         { 1000 bits }
  95.  
  96.   LogOffType     = (loNormal, loDropCarrier, loNoTime, loSysopForce, loAltMinus, loNoActivity, loEvent);
  97.   SysWindowType  = (swNoWindow, swOrigWindow, swSmallWindow, swBigWindow);
  98.   AllChars       = set of Char;
  99.   YmodemBlock    = array[1..1029] of Char;
  100.   KeyArray       = array[1..6] of Str10;
  101.   EditorType     = (ePrompt, eNormal, eFullScreen);
  102.   MorePromptType = (ErasePrompt, NextLine);
  103.   FileDisplayType = (SLFileDisplay, DLFileDisplay, FullFileDisplay);
  104.   ExpertiseLevel = (Novice, Regular, Expert);
  105.   TransferType   = (ttNone, ttAll, ttXmodem, ttXmodemCRC, ttYmodem, ttYmodemG,
  106.                     ttXmodem1K, ttXmodem1KG, ttKermit, ttZmodem, ttAscii, ttExt1,
  107.                     ttExt2, ttExt3, ttExt4, ttExt5, ttExt6, ttExt7, ttExt8, ttExt9, ttExt10);
  108.   SexType        = (stUnKnown, stMale, stFemale);
  109.  
  110. const
  111.   {------ Btree Formats---------}
  112.   KeysDatabase   : array[WcDatabases] of Byte = (6, 4, 6);
  113.   OpenDatabase   : array[WcDatabases] of Boolean = (False, False, False);
  114.   LockDatabase   : array[WcDatabases] of Boolean = (False, False, False);
  115.   
  116.   {-------Array name constants--}
  117.  
  118.   EditorName     : array[EditorType] of Str11 = ('No default', 'Line Editor', 'Full Screen');
  119.   MoreName       : array[MorePromptType] of Str10 = ('Erase Line', 'Skip Line');
  120.   ExpertName     : array[ExpertiseLevel] of Str07 = ('Novice', 'Regular', 'Expert');
  121.   TranName       : array[TransferType] of Str10 =
  122.   ('NONE', 'No default', 'Xmodem', 'Xmodem/CRC', 'Ymodem', 'Ymodem/G', 'Xmodem/1K',
  123.    'Xmodem/1KG', 'Kermit', 'Zmodem', 'Ascii', 'Ext1', 'Ext2', 'Ext3', 'Ext4', 'Ext5', 'Ext6',
  124.    'Ext7', 'Ext8', 'Ext9', 'Ext10');
  125.  
  126.  
  127.   FileDName      : array[FileDisplayType] of Str11 = ('Single line', 'Double line', 'Full');
  128.   OnOffName      : array[Boolean] of Str03 = ('OFF', 'ON ');
  129.   YesNoName      : array[Boolean] of Str03 = ('NO ', 'YES');
  130.   SexName        : array[SexType] of Str13 = ('Not disclosed', 'Male', 'Female');
  131.  
  132.   {------Door file formats------}
  133.  
  134.   diMultiUser    = $01;                                { Is a multi-user door }
  135.   diInUse        = $02;                       { is being used by another node }
  136.  
  137. type
  138.   DoorInfoType   = record
  139.                      diFlags        : Byte;
  140.                    end;
  141.  
  142.   {------Event formats------}
  143. const
  144.   etSun          = $01;
  145.   etMon          = $02;
  146.   etTue          = $04;
  147.   etWed          = $08;
  148.   etThu          = $10;
  149.   etFri          = $20;
  150.   etSat          = $40;
  151.  
  152. type
  153.   {.F-}
  154.   EventMethodType = (etFlex, etSoft, etHard);
  155.   EventShellType  = (etShell, etTerminate);
  156.  
  157.   EventType      = record
  158.                        Method    : EventMethodType;
  159.                        Action    : Byte;
  160.                        Active    : Boolean;
  161.                        NextExec,
  162.                        LastExec  : DateTimeRec;
  163.                        DayBitSet : Byte;
  164.                        ShellType : EventShellType;
  165.                        BatchPath : PathStr;
  166.                    end;
  167.  
  168.  
  169.   {------NodeInfo formats------}
  170. const
  171.   niPagedDisplayed  = $00001;            { have we told them about their page }
  172.   niLptr            = $00002;                              { node Lptr toggle }
  173.   niPage            = $00004;                              { node page toggle }
  174.   niBell            = $00008;                              { node bell toggle }
  175.   niKybd            = $00010;                              { node Kybd toggle }
  176.   niLocalNext       = $00020;                        { node Local next toggle }
  177.   niScreenWrite     = $00040;                      { node screen write toggle }
  178.   niEventNext       = $00080;                        { node event next toggle }
  179.   niBringDown       = $00100;                        { node bring down toggle }
  180.   niKillCaller      = $00200;                    { node log caller off toggle }
  181.   niPagingSysop     = $00400;                        { node paging sysop flag }
  182.   niWindowsOn       = $00800;                          { Sysop Windows are on }
  183.   niOnLocally       = $01000;                            { User is on locally }
  184.   niMNPConnect      = $02000;                            { Error free connect }
  185.   niSysopNext       = $04000;                          { Sysop is next on BBS }
  186.   niUseVgaMode      = $08000;                     { local monitor in VGA mode }
  187.   niNo300baud       = $10000;                           { no 300 baud allowed }
  188.   niNo1200baud      = $20000;                          { no 1200 baud allowed }
  189.   niNo2400baud      = $40000;                          { no 2400 baud allowed }
  190.   {.F+}
  191.  
  192. type
  193.   NodeStatusType = (Down, Up, SigningOn, LoggedIn, Crash, EventProcessing, StayDown);
  194.   ChatStatusType = (Available, UnAvailable, Paged, InChat);
  195.   UserStatusType = (None, FileTransfer, EnteringMsg, InDoor, InDOS, PChat, GChat);
  196.  
  197.   MasterInfoType = record
  198.                      VersionId      : Str05;                 { version number }
  199.                      ActiveNodes    : NodeBitSetType; { bitset of active nodes}
  200.                      TotalCalls,                      { total number of calls }
  201.                      TotalUsers,                      { total number of users }
  202.                      TotalFiles,                      { total number of Files }
  203.                      TotalMessages  : LongInt;         { total number of msgs }
  204.                      TempCalls,                            { Temp stats calls }
  205.                      TempMsgs,                          { temp stats messages }
  206.                      TempDownloads,                    { temp stats downloads }
  207.                      TempUploads,                        { temp stats uploads }
  208.                      MiFlags        : Word;                    { Global flags }
  209.                      ConfAvail      : Array1000Bits; { is conference available}
  210.                      TempReset      : DateTimeRec;     { Date/Time last reset }
  211.                      Padit          : array[1..41] of Byte; { pad to same size as nodeinfotype}
  212.                    end;                               { 244 bytes on 05/29/91 }
  213.  
  214.   NodeInfoType   = record
  215.                      Security       : Str10;
  216.                      NodeStatus     : NodeStatusType;        { Up/Down, Etc.. }
  217.                      ChatStatus     : ChatStatusType;      { Available, etc.. }
  218.                      UserStatus     : UserStatusType; { Entering a Message, etc.. }
  219.                      SysWindow      : SysWindowType;          { status window }
  220.                      CallersName    : Str25;                           { name }
  221.                      From           : Str25;                       { city, st }
  222.                      PrevCaller     : Str50;            { Last caller on node }
  223.                      BaudRate       : LongInt;                    { baud rate }
  224.                      TimeCalled,                   { Date Time user Logged on }
  225.                      PrevLogOff,                         { L/Callers time off }
  226.                      TimeOff        : DateTimeRec; { Time limit expired date/time }
  227.                      RequestNode    : Integer;         { Node requesting chat }
  228.                      nFlags,                        { Bit-mapped status flags }
  229.                      QuoteIndex     : LongInt;     { Quote file index pointer }
  230.                      CurConf        : Word;             {Conference user is in}
  231.                      NumberOfCalls  : LongInt; { totals calls received by node }
  232.                      UserMsgFrom    : Byte;       { node user message is from }
  233.                      UserMsgText    : String[80];      {text for user message }
  234.                    end;                               { 244 bytes on 05/29/91 }
  235.  
  236.   {------Message formats------}
  237.  
  238. const
  239.   {.F-}
  240.   {standard msg flags}
  241.   mfPrivate     = $001;
  242.   mfReceiveable = $002;
  243.   mfReceived    = $004;
  244.   mfReceipt     = $008;
  245.   mfCarboned    = $010;
  246.   mfForwarded   = $020;
  247.   mfEchoFlag    = $040;
  248.   mfNoDelete    = $080;
  249.   mfHasReplies  = $100;
  250.   mfDeleted     = $200;
  251.   mfTagged      = $400; { reserved for internal use in Tomcat }
  252.   {.F+}
  253.  
  254. type
  255.   MsgStatusPtr   = ^MsgStatusType;
  256.   MsgStatusType =
  257.     record
  258.       Status         : LongInt;
  259.       LowMsg         : Word;
  260.       HighMsg        : Word;
  261.       ActiveMsg      : Word;
  262.       LastExtract    : Word;
  263.       Empty          : array[0..493] of Byte;
  264.       Len            : Word;
  265.       Next           : LongInt;
  266.     end;
  267.  
  268.   MsgHeaderPtr   = ^MsgHeaderType;
  269.   MsgHeaderType =
  270.     record
  271.       Status         : LongInt;
  272.       MsgNumber      : Word;
  273.       From           : String[36];               {extended from 25 for netmail}
  274.       FromTitle      : String[10];
  275.       To_            : String[36];               {extended from 25 for netmail}
  276.       ToTitle        : String[10];
  277.       Subject        : String[72];               {extended from 25 for netmail}
  278.       DateTime       : DateTimeRec;
  279.       ReadTime       : DateTimeRec;
  280.       MsgFlags       : Word;
  281.       ThreadRef      : Word;
  282.       Reference      : Word;               {for uti and netmail replyto fields}
  283.       MsgBytes       : Word;                                    {bytes of text}
  284.       OrigAttachName : String[12];
  285.       AttachFileName : String[12];
  286.       UnUsed         : array[1..26] of Byte;
  287.     end;
  288.  
  289.   MsgRecPtr      = ^MsgRecType;
  290.   MsgRecType =
  291.     record
  292.       Status         : LongInt;
  293.       MsgNumber      : Word;
  294.       From           : String[36];               {extended from 25 for netmail}
  295.       FromTitle      : String[10];
  296.       To_            : String[36];               {extended from 25 for netmail}
  297.       ToTitle        : String[10];
  298.       Subject        : String[72];               {extended from 25 for netmail}
  299.       DateTime       : DateTimeRec;
  300.       ReadTime       : DateTimeRec;
  301.       MsgFlags       : Word;
  302.       ThreadRef      : Word;
  303.       Reference      : Word;               {for UTI and netmail ReplyTo fields}
  304.       MsgBytes       : Word;                                    {bytes of text}
  305.       OrigAttachName : String[12];
  306.       AttachFileName : String[12];
  307.       UnUsed         : array[1..26] of Byte; {wildcat only uses this for fido mail}
  308.       MsgText        : array[0..12000] of Byte; {12001 bytes is max size, 150 * 79 chars}
  309.     end;
  310.  
  311.   {------File formats------}
  312.  
  313. const
  314.   {.F-}
  315.   fiNeverOverwrite   = $01; { Never allowed to overwrite the file }
  316.   fiNeverDelete      = $02; { This file never gets deleted }
  317.   fiDontCharge       = $04; { Don't charge against daily charges }
  318.   fiPasswordReq      = $08; { Password is required }
  319.   fiUploadInProgress = $10; { file is being uploaded from another node }
  320.   fiOnCD             = $20; { file is actually on a CD Rom }
  321.   fiOffLine          = $40; { file is offline }
  322.   fiFailedScan       = $80; { file failed virus scan }
  323.   {.F+}
  324.  
  325. type
  326.   FileRecPtr     = ^FileRecordType;
  327.   FileRecordType = record                                      { ALLFILES.DAT }
  328.                      Status,                                  { B-Tree Status }
  329.                      Size           : LongInt;             { Size of the File }
  330.                      FileName       : Str12;               { Name of the file }
  331.                      Password       : Str14;               { 12 Byte password }
  332.                      DateAndTime,                          { Date of the file }
  333.                      LastAccessed   : DateTimeRec;      { Date of last access }
  334.                      UploadedBy     : Str25;                { Who uploaded by }
  335.                      Desc           : Str60;                    { Description }
  336.                      TotalMsgBytes,                    { number of characters }
  337.                      FileToggles,                                  { Bit Mask }
  338.                      NumOfAccess,                       { Number of downloads }
  339.                      Cost,                                 { Cost of the file }
  340.                      Area           : Word;     { file Area it is assigned to }
  341.                      KeyWords       : KeyArray;              { Search Keywords}
  342.                      StoredPath     : PathStr; { Path for the file if on a CD }
  343.                      MsgLines       : array[1..2048] of Byte;
  344.                    end;
  345.  
  346.   FileHeaderType = record                                      { ALLFILES.DAT }
  347.                      Status,                                  { B-Tree Status }
  348.                      Size           : LongInt;             { Size of the File }
  349.                      FileName       : Str12;               { Name of the file }
  350.                      Password       : Str14;               { 12 Byte password }
  351.                      DateAndTime,                          { Date of the file }
  352.                      LastAccessed   : DateTimeRec;      { Date of last access }
  353.                      UploadedBy     : Str25;                { Who uploaded by }
  354.                      Desc           : Str60;                    { Description }
  355.                      TotalMsgBytes,                    { number of characters }
  356.                      FileToggles,                                  { Bit Mask }
  357.                      NumOfAccess,                       { Number of downloads }
  358.                      Cost,                                 { Cost of the file }
  359.                      Area           : Word;     { file Area it is assigned to }
  360.                      KeyWords       : KeyArray;              { Search Keywords}
  361.                      StoredPath     : PathStr; { Path for the file if on a CD }
  362.                    end;
  363.  
  364.   {------Menu formats------}
  365. const
  366.   MaxMenuItems   = 25;
  367.  
  368. type
  369.   MenuNameType   = (MainM, MsgM, FileM, SysopM);
  370.  
  371.   MenuDescRecType = record
  372.                       Desc           : array[1..MaxMenuItems] of Str35;
  373.                       Order          : array[1..MaxMenuItems] of Byte;
  374.                       CallLtr        : array[1..MaxMenuItems] of Char;
  375.                       Sec            : array[1..MaxMenuItems] of Word;
  376.                     end;
  377.  
  378.   MenusDescRecType = array[MainM..SysopM] of MenuDescRecType;
  379.  
  380.   {------File area/path formats------}
  381.   FileAreaRecType = record
  382.                       AreaName       : Str30;
  383.                       AreaPath       : array[1..4] of DirStr;
  384.                     end;
  385.  
  386.  
  387.   {------Makewild formats------}
  388. const
  389.   {.F-}
  390.   mwLogOffIfNotVerified = $00000001;              { Ask New callers for phone }
  391.   mwSysopDropToDos      = $00000002;       { remote drop to DOS ok for Sysops }
  392.   mwDisplayQuoteDay     = $00000004;              { look for quote of the day }
  393.   mwColorAnsi           = $00000008;  { are color scrrens going to be offered }
  394.   mwDropOnExit          = $00000010;                       { Offhook when f10 }
  395.   mwShowSec             = $00000020;                { show apssword on screen }
  396.   mwShowPWFiles         = $00000040;       { Display Password protected files }
  397.   mwUseClearScreens     = $00000080;   { Use clear screens in dynamic screens }
  398.   mwFreeFormPhone       = $00000100;                   { format phone numbers }
  399.   mwUseExecSwap         = $00000200;                 { shell exec to ems/disk }
  400.   mwUseEMSForOverlay    = $00000400;             { use ems for overlay buffer }
  401.   mwUseEMSForExecSwap   = $00000800;                  { use ems for exec swap }
  402.   mwOverwriteChatFiles  = $00001000;                       { reuse chat files }
  403.   mwLockOutForSecError  = $00002000;            { lock out for password error }
  404.   mwVerifyLocAtSignOn   = $00004000;    { Show name and location during login }
  405.   mwUnUsed1             = $00008000;
  406.   mwDynamicFileKeys     = $00010000;{ Build file keywords based on short desc }
  407.   mwSysopReadPrivate    = $00020000;               { Sysop Ok to read private }
  408.   mwShowUserSec         = $00040000;
  409.   mwPrinterOnline       = $00080000;
  410.   mwBulletsOptional     = $00100000;                 { Bulletins are optional }
  411.   mwTerminateOnDoors    = $00200000;
  412.   mwAutoId              = $00400000;
  413.   mwUseXmsForExecSwap   = $00800000;
  414.   mwForce8N1            = $01000000;
  415.   mwDLOverTime          = $02000000;
  416.   mwIndexWildcard       = $04000000;
  417.   mwCopyOnCD            = $08000000;
  418.  {.F+}
  419.  
  420. type
  421.   ScreenType     = (mColor, mMono, mAuto);
  422.   ClosedType     = (Open, Closed, ClosedComment, ClosedQuestionnaire);
  423.   DBProtectType  = (NoProtection, MarkMode, SaveMode);
  424.   ScreenBlankType = (sbNone, sbBox, sbBlackOut, sbFireWorks);
  425.   ConsoleSecType = (cNone, cPassword, cNoConsole);
  426.  
  427.   SettingSecType = (ssYes, ssMessage);
  428.   GetBaudType    = (gbResult1, gbByCR, gbDTE, gbResult2);
  429.   AnswerType     = (apRing, apAutoAnswer, apResult);
  430.   BaudType       = (bUnKnown, bLocal, b300, b1200, b2400, b4800, b9600, b14400, b19200, b38400, b57600);
  431.  
  432.  
  433. const
  434.   BaudNumber     : array[b300..b57600] of Word = (300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600);
  435.  
  436.   mpFixedRate    = $01;                                            { Lock DTE }
  437.   mpCtsRtsFlow   = $02;                            { Use CTS/RTS flow Control }
  438.   mpX25Pad       = $04;
  439.  
  440. type
  441.   ModemProfilePtr = ^ModemProfileType;
  442.   ModemProfileType = record
  443.                        InitBaud       : b300..b57600;
  444.                        CommPort,
  445.                        CommIrq,
  446.                        CarrierDelay,
  447.                        MpFlags,
  448.                        FifoTrigger    : Byte;
  449.                        CommBase,
  450.                        RingDelay,
  451.                        DropDtrDelay,
  452.                        PreLogDelay,
  453.                        ResultDelay,
  454.                        ResetDelay     : Word;
  455.                        AnswerPhone    : AnswerType;
  456.                        DetermineBaud  : GetBaudType;
  457.                        RingStr,
  458.                        AnswerStr,
  459.                        ModemReset     : String[10];
  460.                        OnHook,
  461.                        OffHook        : String[20];
  462.                        ErrorStr,
  463.                        ModemInit      : String[40];
  464.                        BaudStr        : array[b300..b57600] of String[15];
  465.                      end;
  466.  
  467.  
  468.   MakeWildRecord = record                                       {MAKEWILD.DAT }
  469.                      MWVersion      : Str05;               { makewild version }
  470.                      SysFirst,                           { Sysop's First Name }
  471.                      SysLast        : Str15;              { Sysop's Last Name }
  472.                      FirstCall      : Str25;             { Date of First Call }
  473.                      BBSName        : Str30;                { Name of the BBS }
  474.                      FileDataBasePath,
  475.                      UserDataBasePath,                    { ALLUSERS.DAT path }
  476.                      NodeInfoPath,
  477.                      MsgAttachPath  : DirStr;                   { Master Path }
  478.                      NewUserSec     : String[10];
  479.                      MonitorType    : ScreenType;              { Monitor type }
  480.                      CloseOption    : ClosedType;      { Closed Board Options }
  481.                      Network        : NetSupportType;       { type of network }
  482.                      DataBaseOpenMode : DBProtectType;       { open mode type }
  483.                      ScreenBlankMode : ScreenBlankType;
  484.                      ExtLtr         : array[1..10] of Char;     { Ext P/Calls }
  485.                      ExtUpBatch,                         { Upload batch Names }
  486.                      ExtDnBatch,                       { Download Batch Names }
  487.                      ExtName        : array[1..10] of Str12;      { Ext Names }
  488.                      ExtBatchDriven : array[1..10] of Boolean;        { Batch }
  489.                      ExtraMemForOverlay,                 { Extra Overlay Buff }
  490.                      NodeId,                                 { Node Id number }
  491.                      SecTries,             { number of password tries allowed }
  492.                      LinesPage      : Byte;  {New Users Line Per Page default }
  493.                      TotalDosHooks,
  494.                      TotalDoors,                        { Total live programs }
  495.                      MaxFileAreas,
  496.                      MaxConfAreas,
  497.                      FirstCallLimit : Word;     { minutes allowed on 1st call }
  498.                      MwFlags        : LongInt;
  499.                      DateFormat,                         { date format to use }
  500.                      TimeFormat     : Str40;             { time format to use }
  501.                      ActiveConfs    : Array1000Bits;
  502.                      RegString      : String[7];
  503.                      FlexEventInactivity : Word;
  504.                      FlexEventForceTime : Time;
  505.                      MenusDesc      : MenusDescRecType;
  506.                      DefaultExt     : ExtStr;
  507.                      ConsolePassword : String[15];
  508.                      ConsoleSec     : ConsoleSecType;
  509.                      ChangePhone,
  510.                      ChangeAlias,
  511.                      ChangeBDate    : SettingSecType;
  512.                      ModemProfile   : ModemProfileType;
  513.                    end;
  514.  
  515.  
  516.   {------Global user formats------}
  517. const
  518.   ufNeverDelete    = $001;                                                  {!! }
  519.   ufChatPage       = $002;                                         { ok to page }
  520.   ufHotKey         = $004;                                       { use hot keys }
  521.   ufLockedOut      = $008;                                       { allowed user }
  522.   ufColorMenus     = $010;                                   { type of graphics }
  523.   ufReserved       = $020;
  524.   ufQuoteOnReply   = $040;                                { Auto Quote on reply }
  525.   ufClearBeforeMsg = $080;                            { Clear Screen before Msg }
  526.   ufBellAtLogin    = $100;                                      { Beep at login }
  527.   ufNoPrivMail     = $200;                { Don't allow reading of Private Mail }
  528.   ufNoDelMail      = $400;                { Don't allow reading of Deleted Mail }
  529.   ufNoPvtExport    = $800; { Don't allow Tomcat to add to network user database }
  530.  
  531. const
  532.   cufReserved1   = $001;
  533.   cufSysopMail   = $002;                           { Co-Sysop for Mail Maint. }
  534.   cufReserved2   = $004;
  535.   cufLockOut     = $008;                     { Don't allow to join conference }
  536.   cufTitleOff    = $010;                                    { Turn Titles Off }
  537.   cufReserved3   = $020;
  538.   cufPerOnly     = $040;                               { Reserved for TOMCAT! }
  539.   cufReserved4   = $080;
  540.   cufReserved5   = $100;
  541.   cufHaveMail    = $200;                    { Have mail waiting in conference }
  542.  
  543. type
  544.   ConfUserType   = record
  545.                      cuFlags        : Word;
  546.                      cuLastRead     : Word;
  547.                    end;
  548.  
  549.   ConfUserArray  = array[0..999] of ConfUserType;
  550.  
  551. type
  552.   UserRecordPtr  = ^UserRecordType;
  553.   UserRecordType = record                                      { ALLUSERS.DAT }
  554.                      { User's History and Current Profile }
  555.                      Status         : LongInt;                 { Btree Status }
  556.                      UserName       : Str25;                 { Real User Name }
  557.                      From           : Str30;                       { location }
  558.                      Password       : Str14;                       { Password }
  559.                      PhoneNumber,                         { User phone number }
  560.                      DataNumber,                           { User Data number }
  561.                      ComputerType   : Str15;            { Users Computer Type }
  562.                      SecLevel       : Str10;
  563.                      Company,
  564.                      Address1,
  565.                      Address2,
  566.                      City           : Str30;
  567.                      State          : Str02;
  568.                      Zip            : Str10;
  569.                      Country        : Str25;
  570.                      Title          : Str10;
  571.                      Alias          : Str25;
  572.                      NovellName     : Str08;
  573.                      Comment        : array[1..2] of Str30;   { Comment Field }
  574.                      Sex            : SexType;
  575.                      uEditor        : EditorType;
  576.                      MorePrompt     : MorePromptType;          { Erase -MORE- }
  577.                      Xpert          : ExpertiseLevel;           { Xpert level }
  578.                      TransferMethod : TransferType;                { Protocol }
  579.                      FileDisplay    : FileDisplayType;
  580.                      LinesPerPage   : Byte;                 { Lines Per Page  }
  581.                      TimeDate,
  582.                      LastNewFiles   : DateTimeRec;         { Last time called }
  583.                      FileAccess,
  584.                      ConfAccess,
  585.                      ConfScan       : Array1000Bits;            { Conf Joined }
  586.                      ExpireDate,
  587.                      MemoDate,                             { Extra Date Field }
  588.                      UserSince,                           { Date First Called }
  589.                      BirthDate      : Date;                 { Users Birth Day }
  590.                      uFlags,
  591.                      ActiveConf,                   { Users Active Conference  }
  592.                      MsgsWritten,                { Number of Messages Written }
  593.                      Uploads,                              { Number of ULoads }
  594.                      Downloads,                            { Number of DLoads }
  595.                      TimesOn,                               { Number times on }
  596.                      TimeLeft       : Word;                 { Time left today }
  597.                      DailyDL,         { temp counter for daily download count }
  598.                      DailyDK,                { temp counter for daily K-bytes }
  599.                      TotalUK,                              { Total K uploaded }
  600.                      TotalDK,                              { Total K downlded }
  601.                      MinutesLogged,                 { MinutesLogged On System }
  602.                      SubScriptionBalance,
  603.                      NetMailBalance : LongInt;
  604.                      ExtraForDev    : array[1..16] of Byte; { Not used by WCAT}
  605.                      Confs          : ConfUserArray;       { Conference stuff }
  606.                    end;
  607.  
  608. const
  609.   UserRecSize    = SizeOf(UserRecordType)-SizeOf(ConfUserArray);
  610.  
  611.  
  612.   {------Security------}
  613.  
  614. type
  615.   SysopAccess    = (saNo, saYes, saMaster);
  616.   DLRatioActionType = (DoNothing, WarnAboutRatio, NoMoreDownloads);
  617.  
  618. const
  619.   {---- Protocol Flags----}
  620.   pfAscii        = $001;
  621.   pfXmodem       = $002;
  622.   pfXmodemCRC    = $004;
  623.   pfXmodem1k     = $008;
  624.   pfXmodem1kG    = $010;
  625.   pfYmodem       = $020;
  626.   pfYmodemG      = $040;
  627.   pfKermit       = $080;
  628.   pfZmodem       = $100;
  629.   pfExternal     = $200;
  630.  
  631.   sfFastLogin    = $01;                           { Fast logins are supported }
  632.   sfOverwrite    = $02;                      { Autohor may overwrite the file }
  633.   sfTNetFlag     = $04;                                { Reserved for TOMCAT! }
  634.  
  635. type
  636.   {User Templates}
  637.   SecNameType    = String[10];
  638.   SecRecPtr      = ^SecRecType;
  639.   SecRecType     = record
  640.                      ProfileName,
  641.                      ExpiredName    : SecNameType;     {Name used in pick list}
  642.                      DisplayName    : Str08;              { Display File Name }
  643.                      ConfAccess,                    {default conference access}
  644.                      DLAccess,                        {default download access}
  645.                      ULAccess,                          {default upload access}
  646.                      DoorAccess     : Array1000Bits;      {default Door access}
  647.                      AllowOnNode    : NodeBitSetType;  {which nodes has access}
  648.                      SysopStatus    : SysopAccess;
  649.                      OverDLRatio    : DLRatioActionType; {action taken when over up/down ratio}
  650.                      srFlags,
  651.                      UploadComp,                {ratio for upload compensasion}
  652.                      MaxRatio       : Byte;     {maximum upload/download ratio}
  653.                      Menus          : Char;       {menu set for color displays}
  654.                      MenuLevel,                         {level for menu access}
  655.                      ProtocolFlag,                   {available protocol flags}
  656.                      DTL,                                    {daily time limit}
  657.                      MaxLogon,                    {maximum time on per session}
  658.                      VerifyBDate,              {verify birthdate every # calls}
  659.                      VerifyPhone,                   {verify phone ever # calls}
  660.                      CostPerMinute,        {number of units charged per minute}
  661.                      MaxDL,                               {max daily downloads}
  662.                      MaxDK          : Word;              {max daily download k}
  663.                    end;
  664.  
  665.  
  666.   {------Conference formats ---------}
  667. const
  668.   {-------- Conference Flags ---------}
  669.   {.F-}
  670.   cfPromptToKillRecMessages  = $0001;
  671.   cfHighAscii                = $0002;
  672.   cfAllowCarbon              = $0004;
  673.   cfPrivateMsg               = $0008;
  674.   cfForceAllPrivate          = $0010;
  675.   cfReturnReceipt            = $0020;
  676.   cfReserved1                = $0040;
  677.   cfUseAlias                 = $0080;
  678.   cfReserved2                = $0100;
  679.   cfAllowAttach              = $0200;
  680.   cfReadOnly                 = $0400;
  681.   {.F+}
  682.  
  683. type
  684.   ConfMailType   = (cmNormal, cmNetMail);
  685.   ValidNameType  = (vnYes, vnNo, vnPrompt);
  686.  
  687. type
  688.   ConfDescPtr    = ^ConfDescType;
  689.   ConfDescType   = record
  690.                      ConfName,
  691.                      ConfOp         : String[25];
  692.                      ConfMail       : ConfMailType;
  693.                      FileAreaAccess : Array1000Bits;
  694.                      BullPath,
  695.                      QuesPath,
  696.                      MenuPath,
  697.                      HelpPath,
  698.                      DisplayPath,
  699.                      MsgPath        : DirStr;
  700.                      LinesForMsg    : Byte;
  701.                      ConfFlags,
  702.                      ConfNumber,
  703.                      TotalQues,
  704.                      TotalBulletins : Word;
  705.                      ValidNames     : ValidNameType;
  706.                      Reserved       : Byte;
  707.                      MaxMessages    : Word;
  708.                    end;
  709.  
  710. type
  711.   DosHookPtr     = ^DosHookType;
  712.   DosHookType    = record
  713.                      Name           : String[30];
  714.                      ShellPath      : PathStr;
  715.                    end;
  716.  
  717. implementation
  718.  
  719. end.
  720.  
  721.